﻿/// <summary>
/// 标记接口，表示该实体支持多租户数据隔离。
/// </summary>
/// <remarks>
/// <para>
/// 实现此接口的实体将自动受到 EF Core 全局查询过滤器和保存拦截器的保护。
/// </para>
/// <para>
/// - <see cref="TenantId"/> 为 <see langword="null"/> 表示该实体属于**系统范围**（如平台配置）。
/// - 当前操作上下文的 <see cref="TenantContextAccessor.TenantId"/>
///   为 <see langword="null"/> 时，表示当前用户为**系统管理员（SystemManager）**，可访问所有租户数据。
/// </para>
/// </remarks>
public interface ITenantAware
{
  /// <summary>
  /// 获取或设置实体所属租户的唯一标识。
  /// </summary>
  /// <value>
  /// 租户 ID 字符串；若为 <see langword="null"/>，表示该实体无租户归属（系统级实体）。
  /// </value>
  string? TenantId { get; set; }
}